<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; Linux 2.4.3-20mdk i686) [Netscape]">
   <title>Demos</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#990066" alink="#FF0000">
<img SRC="images/OpenSceneGraphBanner_Distribution.jpg" height=77 width=640>
<table>
<tr>
<td><a href="index.html">Index</a></td>

<td><a href="introduction.html">Introduction</a></td>

<td><a href="contents.html">Contents</a></td>

<td><a href="install.html">Install</a></td>

<td><a href="dependencies.html">Dependencies</a></td>

<td><a href="demos.html">Demos</a></td>

<td><a href="data.html">Data</a></td>

<td><a href="sgv.html">Viewer</a></td>

<td><a href="stereo.html">Stereo</a></td>

<td><a href="plan.html">Plan</a></td>

<td><a href="documentation.html">Reference Guides</a></td>
</tr>
</table>

<h2>
<a NAME="Running the demos"></a><u>Running the demos</u></h2>
Once the OpenSceneGraph is <a href="install.html">installed</a> you will
need place the location where it was installed on the you systems paths
environmental variables, and then download the <a href="data.html">demo
data</a> and set the <b>OSG_FILE_PATH</b> so that the file loading can
locate the datasets. It is probably worth setting you autoexec.bat, .bashrc
or.tcsh etc to pick up on these settings so that next time you log in everything
is in easy reach.
<li>
Windows:</li>

<ul><b>set PATH = C:/all/the/exisitng/paths;C:/OpenSceneGraph/bin</b>
<br><b>set OSG_FILE_PATH = C:/OpenSceneGraph-Data;C:/OpenSceneGraph-Data/Images;C:/OpenSceneGraph-Data/Fonts</b></ul>

<li>
Unix</li>

<ul><b>export PATH = ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
<br><b>export LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib</b>
<br><b>export OSG_FILE_PATH = /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images:/home/myaccount/OpenSceneGraph-Data/Fonts</b>
<br>or
<br><b>setenv PATH ${PATH}:/home/myaccount/OpenSceneGraph/bin</b>
<br><b>setenv LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/home/myaccount/OpenSceneGraph/lib</b>
<br><b>setenv OSG_FILE_PATH /home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images:/home/myaccount/OpenSceneGraph-Data/Fonts</b></ul>

<li>
MacOSX:</li>

<ul><b>setenv PATH "${PATH}:${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins"</b>
<br><b>setenv DYLD_LIBRARY_PATH "${OSGHOME}/lib:${OSGHOME}/lib/osgPlugins"</b>
<br><b>setenv OSG_FILE_PATH "/home/myaccount/OpenSceneGraph-Data:/home/myaccount/OpenSceneGraph-Data/Images:/home/myaccount/OpenSceneGraph-Data/Fonts"</b></ul>

All the demos run on the commandline, most requiring parameters, such as
what file to load, if you are in any doubt just run the application and
it will either run, or provide help on what options it accepts.
<br>&nbsp;
<table>
<tr>
<td><a href="sgv.html"><img SRC="images/sgv_cow.jpg" BORDER=0 height=100 width=128></a></td>

<td><b>sgv cow.osg</b></td>

<td>The scene graph viewer demo uses osgGLUT::Viewer to bring up a basic
viewer. To find out what command line arguments it takes simply run sgv
without any arguments. To load a model simple run sgv filename.ext. The
osgGLUT::Viewer provides an extensive set of operations that can be used
to display information about the loaded database such as performance stats,
through to output a snapshot of the screen, which is how these thumbnails
were created. For a full list of key presses and mouse interaction read
the <a href="sgv.html">sgv</a> documentation.</td>
</tr>

<tr>
<td><a href="stereo.html"><img SRC="images/sgv_stereo.jpg" BORDER=0 height=100 width=128></a></td>

<td><b>sgv -stereo cessna.osg</b></td>

<td>The scene graph viewer also supports anaglyphic, quad buffered, and
split screen stereo modes, for a full list of options and environmental
variables see the <a href="stereo.html">stereo</a> documentation.</td>
</tr>

<tr>
<td><img SRC="images/hangglide.jpg" BORDER=0 height=100 width=128></td>

<td><b>hangglide</b></td>

<td>The hang glide demo creates a simple flying site (Don Burns local hang
glide site in fact!), demonstrating how to create simple terrain, trees
and skydomes, and how to implement a simple flight camera manipulator to
allow the user to fly around.&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osgbillboard.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgbillboard lz.rgb</b></td>

<td>Demonstrates how to create the various types of billboard supported
by the OpenSceneGraph. Billboards are typically used for trees or particles
effects.&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osgcube.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgcube</b></td>

<td>Simplest of all demos, create a cube geometry and spin it!&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osghud.jpg" BORDER=0 height=100 width=128></td>

<td><b>osghud glider.osg</b></td>

<td>Very similar to the basic sgv demo, but adds an orthographic projection
over the top of the main 3D view to create a head up display effect. Also
demonstrates how to use osgText. .</td>
</tr>

<tr>
<td><img SRC="images/osgimpostor.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgimpostor Town.osg</b></td>

<td>OpenSceneGraph is unique among scene graph in the fact that it supports
dynamically updated impostors natively, and this demo uses osgUtil::InsertImpostorVisitor
to traverse the loaded scene graph inserting osg::Importor nodes in place
of groups and LOD, so you can add Impostor into any of your own datasets!
The scene graph then takes over full responsibility for managing required
multistage rendering all dynamically at runtime, whilst keeping it neatly
encapsulated making it incredible easy to use. The Impostor support demonstrates
how powerful the multi-stage multi-pass rendering framework that the OpenSceneGraph
has, almost all other scene graphs have to hardwire such effects into them
and require significant application coding to do so.&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osgreflect.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgreflect cow.osg</b></td>

<td>An example of how to set up planar reflections using the standard multi-pass
stencil buffer algorithm. This is all handled within the scene graph, so
there is no need to hardwire multi-pass effects into your own application.
.</td>
</tr>

<tr>
<td><img SRC="images/osgscribe.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgscribe.cow.osg</b></td>

<td>An example of how to decorate your scene graph geometry for useful
effects such as scribing. This demo uses two instances of your model, the
first one uses the state values set in your scene graph, the second instance
override the polygmode to render it as wireframe, and with a polygon offset
to ensure it is seen from all angles. These two instance are grouped together
and then are treated like any other scene graph.&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osgstereoimage.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgstereoimage left.rgb right.rgb</b></td>

<td>An example of use node maks to select different parts of the scene
graph for different traversals, in this case two separate images are drawn
for the left and right eyes to generate a stereo 3D image from two flat
images! .</td>
</tr>

<tr>
<td><img SRC="images/osgtext.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgtext</b></td>

<td>An example showing how to creating the various different typs of text
that the osgText library supports.&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osgtexture.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgtexture lz.rgb reflect.rgb</b></td>

<td>An example showing how to creating the textured quads, each with different
texture parameters, including anisotrophic filtering and texture compression!&nbsp;</td>
</tr>

<tr>
<td><img SRC="images/osgviews.jpg" BORDER=0 height=100 width=128></td>

<td><b>osgviews.cow.osg</b></td>

<td>An example of multiple viewports all running at once.&nbsp;</td>
</tr>
</table>

</body>
</html>
